// // let 可以定义全局变量、局部变量、块级变量（if、for、{}里）
// // var 可以定义全局变量、局部变量


// // 代码一、
// for (var i = 0; i < 3; i++) {
// }
// console.log(i)   // 3


// for (let i = 0; i < 3; i++) {
// }
// console.log(i)   // 报错，undeinfed

// // let 不能重定义
// // Var

// let a
// let a   // 报错

// var b 
// var b 

// // var 可以先使用后定义
// // let 先定义后使用


// console.log(c)


// var c  



// 全局变量：定义在类、函数、对象外的变量。
    // 全局变量，一直存在 
// 局部变量：定义在函数中的变量。
  // 调用函数时变量存在，函数调用完就没了



var a = 1
function abc() {
  a++
  console.log(a)
}
abc()  // 2
abc()  // 3
abc()  // 4

function abc() {
  var a = 1
  a++
  console.log(a)
}
abc()  // 2
abc()  // 2
abc()  // 2


function abc() {
  console.log(this)
}
abc()   

// node 环境下运行 undefined
// 浏览器中运行：window








function abc() {
  var a = 1
  return function () {
    a++
    return a
  }
}

let ccc = abc()
ccc()
ccc()
ccc()
console.log(ccc()) // 5


